<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>百度验证</title>
</head>
<body>
    <input type="text">
    <p></p>
</body>
<script>
    //思路：利用charCodeAt将字符串转换成编码。得出a-z => 97-122; A-Z => 65-90;然后给个计算，如果在这个值内则加一，否则加2
    // 用户名只能最多7个汉字 或者 14个英文字母  只能有14个字符，一个中文表示两个字符

    let tex = document.querySelector('input');
    let p = document.querySelector('p');

    let reg = /([\u4e00-\u9fa5]*|[a-zA-Z]*)/;
    tex.onblur = () => {
        let str = tex.value;
        let res = reg.test(str);
        if (res) {
            let len = 0;
            for (let i = 0; i < str.length; i++) {
                let num = str.charCodeAt(i);
                num > 97 && num < 122 || num > 65 && num < 90 ? len++ : len += 2;
            }
            p.innerHTML = len <= 14 ? '验证成功' : '用户名只能最多7个汉字或者14个英文字母,只能有14个字符,一个中文表示两个字符';
        } else p.innerHTML = '用户名只能最多7个汉字或者14个英文字母,只能有14个字符,一个中文表示两个字符';
    }
</script>
</html>